package com.xnj.filedemo;

import java.io.File;

/**
 * 文件搜索案例
 */
public class FileSearchDemo {
    public static void main(String[] args) {
        String filename = "test.txt";
        File dir = new File("D:/");

        fileSearch(dir, filename);


    }

    public static void fileSearch(File dir,String filename){
        // 1. 拦截非法情况
        if(dir == null || !dir.exists() || dir.isFile()){
            return ;
        }

        // 2. 是文件夹，获取其子一级目录的内容
        File[] files = dir.listFiles();
        if(files != null ){
            // 遍历该目录下所有一级文件对象
            for(File f : files){// 是文件，判断
                if(f.isFile()){
                    if (f.getName().contains(filename)) {
                        System.out.println("找到相关文件："+f.getAbsolutePath());
                        /**
                         * 如果文件为.exe文件，我们想启动该文件，
                         * 那么可以调用Runtime.getRuntime().exec(文件绝对路径);
                         */
//                        try {
//                            Runtime runtime = Runtime.getRuntime();
//                            runtime.exec(f.getAbsolutePath());
//                        } catch (Exception e) {
//                            e.printStackTrace();
//                        }
                    }
                }
                else {// 是文件夹，递归
                    fileSearch(f, filename);
                }
            }
        }

    }
}
